<?php
namespace app\yunda\home;

use app\yunda\model\Address as AddressModel;
use app\yunda\model\User;

class Address extends Base {
    // 获取列表
    public function index($openid=''){
        if(empty($openid)) return mogo_error('参数错误',404);
        $user=User::get(['openid'=>$openid]);
        if(empty($user)) return mogo_error('用户不存在',404);
        $body=request()->only('type');
        // 查询字段
        $map = $this->getMap();
        $map['openid']=$openid;
        $map['delete_time']=null;

        if(isset($body['type']) && !empty($body['type'])) {
            $map['type']=$body['type'];
        }else{
            $map['type']=1;
        }

        $Address = new AddressModel();
        // 自定义where查询
        $data =  $Address
            ->order('id desc')
            ->where($map)
            ->paginate()
            ->each(function($item){

                return $item;
            });
        $data = $data->toArray();
        return mogo_json($data);
    }
    // 保存内容
    public function save(){
        // 第一步 过滤字段
        $data = request()->only(['name', 'phone','home_1','address','type','is_default','openid','id','longitude','latitude']);
        // 第二部 验证字段
        $result = $this->validate($data,'Address');
        if(true!==$result){
            return mogo_error($result);
        }
//        halt($data);
        //设为默认地址时，把其他同类(收件、寄件)地址默认状态去除
        if($data['is_default']==1){
            $m=AddressModel::where(['type'=>$data['type'],'is_default'=>1])->find();
            if(!empty($m)) AddressModel::update(['id'=>$m['id'],'is_default'=>0]);
        }
        if(!isset($data['id'])){
            $res = AddressModel::create($data);//新增
        }else{
            if(empty($data['id'])) return mogo_error('参数错误',404);
            $row=AddressModel::get($data['id']);
            if(empty($row)) return mogo_error('该地址不存在',404);
            $res = AddressModel::update($data);//更新
        }
        return mogo_json($res);
    }
    // 读取内容
    public function read($id){
        $data = AddressModel::get($id);
        // 第一步 验存
        if(!$data) return mogo_error('地址不存在');
        // 这里可以做一些处理
        return mogo_json($data);
    }
    // 删除内容
    public function delete($id){
        $data = AddressModel::get($id);
        // 第一步 验存
        if(!$data) return mogo_error('地址不存在');
        // 第二部 验证权限
        // 第三部 返回处理结果,便于调试
        $res=[
           'result'=> $data->delete(),
        ];
        return mogo_json($res,'',1);
    }

}